#include "ManualCellController.h"

/*
	ManualCellController
*/

/*	public	*/

ManualCellController::ManualCellController() :
	_nUpdates(0) {

	/* _outputs */
	_outputs = new double[23];
	
	/* size */
	_outputs[0] = 0; /* on */
	_outputs[1] = 1; /* shrink/grow */
	_outputs[2] = 1; /* energy importance */

	/* shapes */

	/*  ...  */
	/*  ...  */
	/*  ...  */
	_outputs[3] = 1;

	/*  .X.  */
	/*  ...  */
	/*  ...  */
	_outputs[4] = 1;

	/*  XX.  */
	/*  ...  */
	/*  ...  */
	_outputs[5] = 0;

	/*  XXX  */
	/*  ...  */
	/*  ...  */
	_outputs[6] = 0;

	/*  XX.  */
	/*  X..  */
	/*  ...  */
	_outputs[7] = 1;

	/*  XXX  */
	/*  X..  */
	/*  ...  */
	_outputs[8] = 1;

	/*  ...  */
	/*  .X.  */
	/*  ...  */
	_outputs[9] = 1;

	/*  .X.  */
	/*  .X.  */
	/*  ...  */
	_outputs[10] = 1;

	/*  XX.  */
	/*  .X.  */
	/*  ...  */
	_outputs[11] = 1;

	/*  XXX  */
	/*  .X.  */
	/*  ...  */
	_outputs[12] = 1;

	/*  XX.  */
	/*  XX.  */
	/*  ...  */
	_outputs[13] = 0;

	/*  XXX  */
	/*  XX.  */
	/*  ...  */
	_outputs[14] = 1;

	/*  XXX  */
	/*  X.X  */
	/*  ...  */
	_outputs[15] = 1;

	/*  XXX  */
	/*  XXX  */
	/*  ...  */
	_outputs[16] = 0;

	/*  XXX  */
	/*  X..  */
	/*  X..  */
	_outputs[17] = 0;

	/*  XXX  */
	/*  XX.  */
	/*  X..  */
	_outputs[18] = 1;

	/*  XXX  */
	/*  X.X  */
	/*  X..  */
	_outputs[19] = 1;

	/*  XXX  */
	/*  XXX  */
	/*  X..  */
	_outputs[20] = 1;

	/*  XXX  */
	/*  X.X  */
	/*  X.X  */
	_outputs[21] = 1;

	/*  XXX  */
	/*  XXX  */
	/*  X.X  */
	_outputs[22] = 1;
}

ManualCellController::~ManualCellController() {
	delete[] _outputs;
}

void ManualCellController::update() {
	++_nUpdates;
}

int ManualCellController::getOutputSize() const {
	return 23;
}

double const* ManualCellController::getOutputAddress(int index) const {
	return _outputs + index;
}

